作者:亲爱的常青藤先生 | 来源:互联网 | 2024-11-29 07:52
前言:本文旨在深入解析Linux系统中Buff/Cache占用过高的现象,并提供有效的解决方案,帮助用户更好地管理和优化系统性能。
> free -h
理解Buff与Cache
在Linux操作系统中,'buff'和'cache'主要用于提高系统的读写效率。'buff'通常指的是用于存储文件系统元数据的缓存,而'cache'则是指用于加速数据访问速度的数据缓存。
如何释放Buff/Cache
手动释放方法
> sync
> echo 1 > /proc/sys/vm/drop_caches
> echo 2 > /proc/sys/vm/drop_caches
> echo 3 > /proc/sys/vm/drop_caches
sync
命令用于将所有未写入的数据从内存同步到磁盘,确保数据安全。
echo 1 > /proc/sys/vm/drop_caches
用于清除Page Cache,即文件数据缓存。
echo 2 > /proc/sys/vm/drop_caches
用于清除Slab Cache,这包括了目录项缓存和inode缓存等,这些缓存用于提高文件系统操作的速度。
echo 3 > /proc/sys/vm/drop_caches
同时清除Page Cache和Slab Cache,全面释放内存资源。
自动化定期清理
为了确保系统长期稳定运行,可以设置定时任务来自动清理缓存:
> vim clean.sh
#!/bin/bash
# 每两小时执行一次缓存清理
echo "开始缓存清理"
sync; sync; sync # 确保所有数据同步到磁盘
sleep 20 # 延迟20秒,保证数据完全写入
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
> chmod +x clean.sh
> crontab -e
# 每两小时执行一次
0 */2 * * * /opt/clean.sh
- 确保crond服务已启动并设置为开机自启:
systemctl start crond.service
systemctl enable crond.service
参考资料:原文章链接
关注微信公众号:入门小站,获取更多技术分享。